package ClasesPrincipales;

import java.util.ArrayList;

public class Capitulo {
	private String nombreCapitulo;
	private int numeroCapitulo;
	private int numeroTemporada;
	private ArrayList<String> idiomasDisponibles;
	private boolean descargaDirecta;
	private boolean visibleOnline;

	public Capitulo(String nombreCapitulo, int numeroCapitulo, int numeroTemporada, ArrayList<String> idiomasDisponibles, boolean descargaDirecta, boolean visibleOnline) {
		super();
		this.nombreCapitulo = nombreCapitulo;
		this.numeroCapitulo = numeroCapitulo;
		this.numeroTemporada = numeroTemporada;
		this.idiomasDisponibles = idiomasDisponibles;
		this.descargaDirecta = descargaDirecta;
		this.visibleOnline = visibleOnline;
	}

	public String getNombreCapitulo() {
		return nombreCapitulo;
	}

	public void setNombreCapitulo(String nombreCapitulo) {
		this.nombreCapitulo = nombreCapitulo;
	}

	public int getNumeroCapitulo() {
		return numeroCapitulo;
	}

	public void setNumeroCapitulo(int numeroCapitulo) {
		this.numeroCapitulo = numeroCapitulo;
	}

	public int getNumeroTemporada() {
		return numeroTemporada;
	}

	public void setNumeroTemporada(int numeroTemporada) {
		this.numeroTemporada = numeroTemporada;
	}

	public ArrayList<String> getIdiomasDisponibles() {
		return idiomasDisponibles;
	}

	public void setIdiomasDisponibles(ArrayList<String> idiomasDisponibles) {
		this.idiomasDisponibles = idiomasDisponibles;
	}

	public boolean isDescargaDirecta() {
		return descargaDirecta;
	}

	public void setDescargaDirecta(boolean descargaDirecta) {
		this.descargaDirecta = descargaDirecta;
	}

	public boolean isVisibleOnline() {
		return visibleOnline;
	}

	public void setVisibleOnline(boolean visibleOnline) {
		this.visibleOnline = visibleOnline;
	}

	@Override
	public boolean equals(Object obj) {
		if (obj == null)
			return false;
		if (!obj.getClass().equals(Capitulo.class))
			return false;
		else if ((((Capitulo) obj).getNumeroCapitulo() == this.numeroCapitulo) && (((Capitulo) obj).getNumeroTemporada() == this.numeroTemporada))
			return true;
		return false;
	}

	@Override
	public String toString() {
		String description = "Capitulo " + numeroCapitulo + ", Temporada " + numeroTemporada + "\n";
		description += "Idiomas disponibles: ";
		for(String idioma: idiomasDisponibles)
			description += idioma + ", ";
		description += "\nDescarga Directa: " + descargaDirecta + ", Visible Online: " + visibleOnline + "\n";
		return description;
	}

}
